home *** CD-ROM | disk | FTP | other *** search
- int sum(a,b, term)
- int a,b, (*term) ();
- {
- int i, sum = 0;
- for (i=a; i<b; i++)
- sum = sum + (*term) (i);
- return sum;
- }
-
- double dsum(a,b, term)
- int a,b;
- double (*term) ();
- {
- int i;
- double sum = 0;
- for (i=a; i<b; i++)
- sum = sum + (*term) (i);
- return sum;
- }
-
- double pi(x)
- int x;
- { return 1.0/(16*x*x + 16*x + 3); }
-
- int id(x)
- int x;
- { return x; }
-
- int sq(x)
- int x;
- { return x*x; }
-
- int main(argc, argv)
- int argc;
- char **argv;
- {
- int n,x;
- char * pid, *psq, *ppi;
-
- if (argc < 2) return -1;
- n = atoi(argv[1]);
- x = atoi(argv[2]);
-
- pid = (char *) id;
- psq = (char *) sq;
- printf("%d is the sum of %d to %d\n", sum(n,x,pid), n, x);
- printf("%d is the sum of squares from %d to %d\n\n", sum(n,x,psq),n,x);
- ppi = (char *) pi;
- printf("%10.8f is an approximation of PI\n\n", 8*dsum(n,x,ppi));
-
- return 0;
- }
-
-